The MultiMediaCard (MMC) is a universal low cost data storage and communication medium. It is designed to cover a wide area of applications such as electronic toys, electronic organizers, personal digital assistants, digital cameras, smart phones, digital recorders, MP3 players, pagers. Its targeted features include high mobility and high performance at a low cost. High performance can be expressed in terms of low power consumption and high data throughput at the memory card interface.
To provide for the forecasted migration of CMOS power (VDD) requirements and for compatibility and integrity of the MMC systems, two types of MMCs are currently defined. One is referred to as High Voltage MMC with a VDD range of 2.7–3.6 V, and the other is referred to as Low Voltage MMC with a VDD range of 1.65–1.95 V and 2.7–3.6 V.
According to the MMC Specification 4.0 (Draft 3), the MMC communication is based on a 13-pin bus operating in a low voltage range. The communication protocol for use with the MMCs is referred to as MultiMediaCard protocol.
The MMC transfers data via a configurable number of data bus signals. The communication signals are:                CLK—with each cycle of this signal, a one-bit transfer on the command and each of the data lines is performed. The frequency may vary between zero and the maximum clock frequency of 20 MHz, 26 MHz or 52 MHz.        CMD—a bidirectional command channel used for card initialization and transfer of commands. This signal has two operation modes: open-drain for initialization mode, and push-pull for fast command transfer. Commands are sent from the MMC bus master to the card, and responses are sent from the card to the host.        DAT0–DAT7—bidirectional data channels. The DAT signals operate in a push-pull mode. Either the card or the host is driving these signals at a time. By default, after power up or reset, only DAT0 is used for data transfer. A wide data bus can be configured for data transfer using DAT1–DAT7 by the MMC controller.        
The card is connected directly to the signals of the MMC bus. The card contacts as defined in TABLE I.
TABLE IPin No.NameTypeDescription1DAT3I/O/PPData2CMDI/O/PP/ODCommand/Response3VSS1SSupply voltage ground4VDDSSupply voltage5CLKIClock6VSS2SSupply voltage ground7DAT0I/O/PPData8DAT1I/O/PPData9DAT2I/O/PPData10DAT4I/O/PPData11DAT5I/O/PPData12DAT6I/O/PPData13DAT7I/O/PPDataNote:TYPE:S = power supply;I = input;O = output;PP = push-pull;OD = open-drainDAT0–DAT7 lines for read-only cards are outputs only.
The main design goal of the MultiMediaCard system is to provide a very low cost mass storage product implemented as a ‘card’ with a simple controlling unit, and a compact, easy-to-implement interface. It is based on modularity and the capability of reusing hardware over a large variety of cards. In general, there are four typical architectures of possible MMC systems: 1) software protocol emulation, wherein an MMC card is linked to a device (e.g. an LCD) by a micro-controller; 2) point-to-point liked system, wherein the MMC card is linked to a device by an MMC adapter and a device processor (e.g, an audio processor to drive a speaker), 3) single bus linked system, and 4) PC bus linked system. In most cases, an MMC card is used in conjunction with a host, as shown in FIG. 1. As shown in FIG. 1, the MMC host typically has an MMC adapter to receive the MMC bus of an MMC card. Depending on the application in the MMC host, the host has an application adapter, which is linked to the MMC adapter by an MMC adapter interface. The MMC adapter and the application adapter are part of a component generally referred to as the MMC controller. The application adapter has specific software to perform application-oriented tasks. The host can be a mobile phone, a camera, a PDA or the like. In a host such as a mobile phone, the application can be a navigation system. In a more complex MMC system, a DMA (Direct Memory Access) controller/bus bridge is also used in a hardware system.
The MultiMediaCard bus is designed to connect either solid-state mass-storage memory or I/O devices in a card format to multimedia applications. The bus implementation allows the coverage of application fields from low-cost systems to systems with a fast data transfer rate. It is a single master bus with a single slave or a plurality of slaves. The MultiMediaCard bus master is the bus controller. As shown in FIG. 2, the slave is either a single mass storage card or an I/O-card with an on-card controlling unit to perform the data transfer. The mass-storage card can be made with possibly different technologies such as ROM (Read-Only Memory), OTP (One Time Programmable), MTP (Multiple Time Programmable) and Flash (multiple-time programmable non-volatile memory). The MultiMediaCard bus also includes power connections to supply power to the card.
MultiMediaCard Bus Protocol
After a power-on reset, the host must initialize the card by a special message-based MultiMediaCard protocol. Each message is represented by one of the following tokens:                1. command: a command is a token which starts an operation. A command is sent from the host to a card and is transferred serially on the CMD line.        2. response: a response is a token which is sent from the card to the host as an answer to a previously received command. A response is transferred serially on the CMD line.        3. data: data can be transferred from the card to the host, or vice versa, via the data lines. The number of data lines used for the data transfer can be 1(DAT0), 4(DAT0–DAT3), or 8(DAT0–DAT7).        
It should be noted that, in the older versions of the MMC specification (Version 3.31, for example), there is only one bi-directional data channel, DAT, as compared to 8 bi-directional data channels as defined in MMC Specification 4.0. With 8 bi-directional data channels, bus width can be selected among 1-bit, 4-bit and 8-bit modes for data transmission. The 1-bit mode is mainly used for backward compatibility. The other two modes are used for MMCs according to Specification 4.0 and higher. The 4-bit data bus gives a bandwidth of 8 times as compared to the 1-bit data bus because the clock frequency is doubled. The 8-bit data bus gives a bandwidth of 16 times. With the 4-bit mode, the data bus is not fully utilized.
An MMC card can also be used in an SPI (Serial Peripheral Interface) mode. The SPI mode consists of a secondary, optional communication protocol based on the SPI standard. This communication protocol is offered by Flash-based MultiMediaCards. This mode is a subset of the MultiMediaCard protocol, designed to communicate with an SPI channel, found in some micro-controllers. The interface is selected during the first reset command after power up (CMD0) and cannot be changed once the part is powered on.
The SPI standard defines the physical link only, and not the complete data transfer protocol. The MultiMediaCard SPI implementation uses a subset of the MultiMediaCard protocol and command set. The Serial Peripheral Interface is a general purpose synchronous serial interface. The MultiMediaCard SPI channel consists of the following signals:                CS—Host to card Chip Select Signal        CLK—Host to card clock signal        DataIn—Host to card data signal        DataOut—Card to host data signalThe MultiMediaCard SPI bus system is shown in FIG. 3. The MultiMediaCard pin assignment in SPI mode is shown in TABLE II.        
TABLE IIPin No.NameTypeDescription1CSIChip Select (neg true)2DII/PPData In3VSSSSupply voltage ground4VDDSSupply voltage5SCLKIClock6VSS2SSupply voltage ground7DOO/PPData Out8Not used9Not used10Not used11Not used12Not used13Not used
In MMC mode, the CS signal line is not used.
thus, when there are unused data lines and a possible CS signal line between an MMC host and a memory device in one or more operational modes, it is advantageous and desirable to provide a method for using these unused lines in order to improve the performance of the MMC host.